package com.lin.manager.file.oss;

import com.lin.manager.file.entity.FileConfigEntity;
import com.lin.manager.file.model.vo.FileVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @作者: 林江
 * @创建时间: 2024/3/22
 * @功能:
 */
public interface OssService {

    /**
     * @param file       上传的文件
     * @param fileConfig 云存储的配置信息
     * @param resp       上传之后响应数据
     */
    void doUpload(MultipartFile file, FileConfigEntity fileConfig, Map<String, Object> resp) throws Exception;

    /**
     * 下载
     *
     * @param vo         文件路径,文件名称等信息
     * @param fileConfig 云存储的配置信息
     * @param response   请求响应
     */
    void doDownload(HttpServletResponse response, FileVo vo, FileConfigEntity fileConfig) throws Exception;

    /**
     * 参数是否匹配对应的服务
     */
    Boolean isSupport(String type);

    /**
     * @param delegate
     */
    void next(OssService delegate);


}
